package com.ftg.learn.bus.service;

import com.ftg.learn.bus.VO.MenuVo;
import com.ftg.learn.bus.entity.Menu;
import com.baomidou.mybatisplus.extension.service.IService;
import org.json.JSONObject;

import java.util.List;

/**
 * <p>
 * 菜单表 服务类
 * </p>
 *
 * @author lalala
 * @since 2022-03-07
 */
public interface IMenuService extends IService<Menu> {

    /**
     * 查询当前用户所有权限菜单
     * @param uid 用户id
     * @return 返回菜单列表
     */
    List<MenuVo> showMenuForUserId(Long uid);

    /**
     * 查询当前角色下的菜单列表
     * @param rid 角色id
     * @return 返回菜单列表
     */
    List<MenuVo> showMenuForRoleId(Long rid);

    /**
     * 分级查询当前用户权限菜单
     * @return 用户拥有权限
     */
    List<MenuVo> queryMenu();

    /**
     *  通过角色id查询角色下的菜单
     * @param rid 角色id
     * @param mids 菜单id数组
     * @return 返回成功条数
     */
    boolean saveOrUpdateMenusByRid(Long rid,List<Long> mids);

    /**
     * 树形结构查询菜单
     * @param rid
     * @return
     */
    JSONObject findMenuTree(Long rid);

    /**
     * 根据菜单id修改菜单名
     * @param mid
     * @param title
     * @return
     */
    boolean updateForName(Long mid, String title);
}
